"""
参考第9节的综合案例中的学生信息管理，
来实现一个自动取款机的存取款模拟效果
。要求有登陆和退出、查询余额、取钱，存钱等操作。
"""

# 模拟用户名密码
user_list = [
    {'username': 'wuyan', 'password': '123', 'money': 1234}
]


# 添加注册账户
def add_register(username, password, money):
    user_dict = dict()
    user_dict['username'] = username
    user_dict['password'] = password
    user_dict['money'] = money
    user_list.append(user_dict)


# 检测是否有该账户
def login():
    username = input('请输入用户名：')
    password = input('请输入密码：')
    # 判断是否有该账户
    for i, u in enumerate(user_list):
        # 用户名和密码正确才可以登录
        if username == user_list[i]['username'] and password == user_list[i]['password']:
            # 登陆后显示账户余额
            print(">" * 15, '账户余额', "<" * 15)
            moneys = user_list[i]['money']
            print('{}您的余额是:{}'.format('-' * 3, moneys))
        # 我想的是u返回的字典在不在user_list里面
        elif u not in user_list:
            print('没有该账号请选择注册！')
        else:
            print('密码错误！')


# 计算余额
def count_money():
    # 先登录再取钱
    login()
    get_money = int(input('取钱金额:'))
    for i, m in enumerate(user_list):
        # 确认用户到底是哪一个
        if username == user_list[i]['username'] and password == user_list[i]['password']:
            moneys = user_list[i]['money']
            # 如果取款金额大于余额就不会运行else
            if get_money > moneys:
                print('抱歉余额不足！')
            # 余额足够便可以运行
            else:
                num_money = moneys - get_money
                user_list[i]['money'] = num_money
                print('您的余额：', num_money)


while True:
    # 输出一个初始界面
    print('=' * 12, '模拟银行', '=' * 12)
    print("{:1}{:13}{:15}".format(' ', '1. 登录查看余额', '2. 添加账号'))
    print("{:1}{:16}{:15}".format(' ', '3. 取钱', '4. 退出系统'))
    print('=' * 34)
    key = input('请输入对应选项：')
    # 1.登录查看余额
    if key == '1':
        print('=' * 12, '查看余额', '=' * 12)
        login()
    # 2. 添加账号
    elif key == '2':
        print('=' * 12, '添加账号', '=' * 12)
        username = input('请输入账户名称：')
        password = input('请输入密码：')
        money = int(input('请输入存款金额:'))
        add_register(username, password, money)
    # 3. 取钱计算
    elif key == '3':
        # 计算余额
        print('=' * 12, '登录', '=' * 12)
        count_money()
    # 4. 退出功能
    elif key == '4':
        print('=' * 12, '谢谢使用', '=' * 12)
        break
    # 5. 指令错误的回复
    else:
        print('=' * 12, '没有此项指令', '=' * 12)
